﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SpaceKinect
{
    class Difficulty
    {
        public int mapWidth;
        public int mapHeight;
        public int startingAsteroids;
        public int gameSpeed;
        public int maxUFOs;
        public int maxAsteroids;
        public int maxGameSpeed;
        public float UFOFireRate;
        public float rateOfSpeedIncrease;
        public int UFOFireToggleOffTime;
        public int UFOFireToggleOnTime;
        public int AmmoRespawnRate;
        public int MaxAmmo;
        public int playerUFOBulletDamage;
        public int playerWallDamage;
        public int playerAsteroidDamage;


        public int cyclesTillUFO;


        public Difficulty(string diff)
        {
            switch (diff.ToUpper())
            {
                //Med
                case "MEDIUM":
                    mapWidth = 9;
                    mapHeight = 7;
                    startingAsteroids = 20;
                    gameSpeed = 6;
                    maxUFOs = 6;
                    maxAsteroids = 300;
                    maxGameSpeed = 9;
                    UFOFireRate = 150;
                    rateOfSpeedIncrease = 0.6f;
                    UFOFireToggleOffTime = 5000;
                    UFOFireToggleOnTime = 10000;
                    AmmoRespawnRate = 6;
                    MaxAmmo = 25;
                    playerUFOBulletDamage = 20;
                    playerWallDamage = 15;
                    playerAsteroidDamage = 40;
                    cyclesTillUFO = 4;
                    break;

                //HARD
                case "HARD":
                    mapWidth = 8;
                    mapHeight = 6;
                    startingAsteroids = 20;
                    gameSpeed = 7;
                    maxUFOs = 20;
                    maxAsteroids = 500;
                    maxGameSpeed = 10;
                    UFOFireRate = 50;
                    rateOfSpeedIncrease = 0.8f;
                    UFOFireToggleOffTime = 3000;
                    UFOFireToggleOnTime = 15000;
                    AmmoRespawnRate = 5;
                    MaxAmmo = 20;
                    playerUFOBulletDamage = 15;
                    playerWallDamage = 20;
                    playerAsteroidDamage = 50;
                    cyclesTillUFO = 3;
                    break;

                //Easy/default
                default:
                    mapWidth = 15;
                    mapHeight = 8;
                    startingAsteroids = 10;
                    gameSpeed = 5;
                    maxUFOs = 3;
                    maxAsteroids = 100;
                    maxGameSpeed = 7;
                    UFOFireRate = 250;
                    rateOfSpeedIncrease = 0.4f;
                    UFOFireToggleOffTime = 0;
                    UFOFireToggleOnTime = 0;
                    AmmoRespawnRate = 10;
                    MaxAmmo = 30;
                    playerUFOBulletDamage = 25;
                    playerWallDamage = 10;
                    playerAsteroidDamage = 30;
                    cyclesTillUFO = 2;
                    break;
            }
        }

    }
}
